CFLAGS = -Wall -pedantic  -O4
CC = g++
LDFLAGS= -Wl,-rpath
OBJECTS = ./CEC2013/cec2013.o ./CEC2013/cfunction.o ./CEC2013/rand2.o Self_Define_Functions.o
INCLUDE = ./CEC2013/cec2013.h ./CEC2013/cfunction.h

all:  MCEDA0 MCEDA1 MCEDA2 MCEDA3

MCEDA0: MCEDA0.o $(OBJECTS) $(INCLUDE)
	$(CC) $(CFLAGS) -o MCEDA0 MCEDA0.o $(OBJECTS)
MCEDA0.o: $(INCLUDE) MCEDA0.cpp
	$(CC) $(CFLAGS) -c MCEDA0.cpp

MCEDA1: MCEDA1.o $(OBJECTS) $(INCLUDE)
	$(CC) $(CFLAGS) -o MCEDA1 MCEDA1.o $(OBJECTS)
MCEDA1.o: $(INCLUDE) MCEDA1.cpp
	$(CC) $(CFLAGS) -c MCEDA1.cpp

MCEDA2: MCEDA2.o $(OBJECTS) $(INCLUDE)
	$(CC) $(CFLAGS) -o MCEDA2 MCEDA2.o $(OBJECTS)
MCEDA2.o: $(INCLUDE) MCEDA2.cpp
	$(CC) $(CFLAGS) -c MCEDA2.cpp

MCEDA3: MCEDA3.o $(OBJECTS) $(INCLUDE)
	$(CC) $(CFLAGS) -o MCEDA3 MCEDA3.o $(OBJECTS)
MCEDA3.o: $(INCLUDE) MCEDA3.cpp
	$(CC) $(CFLAGS) -c MCEDA3.cpp


Self_Define_Functions.o:  ./CEC2013/cec2013.h Self_Define_Functions.h Self_Define_Functions.cpp
	$(CC) $(CFLAGS) -c Self_Define_Functions.cpp

/CEC2013/cec2013.o: ./CEC2013/cec2013.h ./CEC2013/cec2013.cpp ./CEC2013/cfunction.h ./CEC2013/cfunction.cpp
	$(CC) $(CFLAGS) -c ./CEC2013/cec2013.cpp

/CEC2013/cfunction.o: ./CEC2013/cfunction.h ./CEC2013/cfunction.cpp
	$(CC) $(CFLAGS) -c ./CEC2013/cfunction.cpp

/CEC2013/rand2.o: ./CEC2013/rand2.c ./CEC2013/rand2.h
	$(CC) $(CFLAGS) -c ./CEC2013/rand2.c

clean:
	rm -f  $(OBJECTS)
	rm -f  *.o


